/*******************************************************************************
版权声明: Copyright(C) HT-Tech Co., Ltd. 2020-2021. All rights reserved.
文件名称: htthr.h
文件描述: 线程操作接口声明
创 建 者: 陈位仅
创建时间: 2024年11月13日
修改历史:
1. 2024年11月13日    陈位仅      创建文件 
*******************************************************************************/
#ifndef _MYTHR__15882503819
#define _MYTHR__15882503819

//BOOL定义
typedef unsigned int bool;

//线程执行接口类型
typedef void (*RUN)(void *arg);

//线程结构
struct htthr
{
    RUN run;
    void *arg;
    bool status;
    bool bthrun;
    bool bthrsusend;

    /*private item*/
    pthread_t tid;
    pthread_mutex_t mutex;
    pthread_cond_t cont;
};

//************************************
// 接口名: thr_start
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 启动线程
//************************************
int thr_start(struct htthr *pThr);

//************************************
// 接口名: thr_wait
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 等待线程结束
//************************************
int thr_wait(struct htthr *pThr);

//************************************
// 接口名: thr_wait
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 终止线程(线程关闭)
//************************************
int thr_cancel(struct htthr *pThr);

//************************************
// 接口名: thr_wait
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 退出线程(线程未关闭)
//************************************
void thr_exit(struct htthr *pThr);

//************************************
// 接口名: thr_wait
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 线程等待信号创建
//************************************
void thr_suspend(struct htthr *pThr);

//************************************
// 接口名: thr_wait
// 返回值: 0 成功, -1 失败
// 参  数: pThr:线程结构
// 描  述: 触发线程等待信号
//************************************
void thr_resume(struct htthr *pThr);

#endif
